

#include "dalvik-opcode.h"

static DALVIK_FMT insn_fmt[]={ 

/*0*/ fmt_10x, //nop
/*1*/ fmt_12x, //"move vA, vB"
/*2*/ fmt_22x, //"move/from16 vAA, vBBBB"
/*3*/ fmt_32x, //"move/16 vAAAA, vBBBB"
/*4*/ fmt_12x, //"move-wide vA, vB"
/*5*/ fmt_22x, //"move-wide/from16 vAA, vBBBB"
/*6*/ fmt_32x, //"move-wide/16 vAAAA, vBBBB"
/*7*/ fmt_12x, //"move-object vA, vB"
/*8*/ fmt_22x, //"move-object/from16 vAA, vBBBB"
/*9*/ fmt_32x, //"move-object/16 vAAAA, vBBBB"
/*a*/ fmt_11x, //move-result vAA
/*b*/ fmt_11x, //move-result-wide vAA
/*c*/ fmt_11x, //move-result-object vAA
/*d*/ fmt_11x, //move-exception vAA
/*e*/ fmt_10x, //return-void
/*f*/ fmt_11x, //return vAA
/*10*/ fmt_11x, //return-wide vAA
/*11*/ fmt_11x, //return-object vAA
/*12*/ fmt_11n, //"const/4 vA, #+B"
/*13*/ fmt_21s, //"const/16 vAA, #+BBBB"
/*14*/ fmt_31i, //"const vAA, #+BBBBBBBB"
/*15*/ fmt_21h, //"const/high16 vAA, #+BBBB0000"
/*16*/ fmt_21s, //"const-wide/16 vAA, #+BBBB"
/*17*/ fmt_31i, //"const-wide/32 vAA, #+BBBBBBBB"
/*18*/ fmt_51l, //"const-wide vAA, #+BBBBBBBBBBBBBBBB"
/*19*/ fmt_21h, //"const-wide/high16 vAA, #+BBBB000000000000"
/*1a*/ fmt_21c, //"const-string vAA, string@BBBB"
/*1b*/ fmt_31c, //"const-string/jumbo vAA, string@BBBBBBBB"
/*1c*/ fmt_21c, //"const-class vAA, type@BBBB"
/*1d*/ fmt_11x, //monitor-enter vAA
/*1e*/ fmt_11x, //monitor-exit vAA
/*1f*/ fmt_21c, //"check-cast vAA, type@BBBB"
/*20*/ fmt_22c, //"instance-of vA, vB, type@CCCC"
/*21*/ fmt_12x, //"array-length vA, vB"
/*22*/ fmt_21c, //"new-instance vAA, type@BBBB"
/*23*/ fmt_22c, //"new-array vA, vB, type@CCCC"
/*24*/ fmt_35c, //"filled-new-array {vC, vD, vE, vF, vG}, type@BBBB"
/*25*/ fmt_3rc, //"filled-new-array/range {vCCCC .. vNNNN}, type@BBBB"
/*26*/ fmt_31t, //"fill-array-data vAA, +BBBBBBBB (with supplemental data as specified below in ""fill-array-data-payload Format"")"
/*27*/ fmt_11x, //throw vAA
/*28*/ fmt_10t, //goto +AA
/*29*/ fmt_20t, //goto/16 +AAAA
/*2a*/ fmt_30t, //goto/32 +AAAAAAAA
/*2b*/ fmt_31t, //"packed-switch vAA, +BBBBBBBB (with supplemental data as specified below in ""packed-switch-payload Format"")"
/*2c*/ fmt_31t, //"sparse-switch vAA, +BBBBBBBB (with supplemental data as specified below in ""sparse-switch-payload Format"")"
/*2d*/ fmt_23x, // cmpl-float (lt bias)
/*2e*/ fmt_23x, // cmpg-float (gt bias)
/*2f*/ fmt_23x, // cmpl-double (lt bias)
/*30*/ fmt_23x, // cmpg-double (gt bias)
/*31*/ fmt_23x, // cmp-long
/*32*/ fmt_22t, // if-eq
/*33*/ fmt_22t, // if-ne
/*34*/ fmt_22t, // if-lt
/*35*/ fmt_22t, // if-ge
/*36*/ fmt_22t, // if-gt
/*37*/ fmt_22t, // if-le
/*38*/ fmt_21t, // if-eqz
/*39*/ fmt_21t, // if-nez
/*3a*/ fmt_21t, // if-ltz
/*3b*/ fmt_21t, // if-gez
/*3c*/ fmt_21t, // if-gtz
/*3d*/ fmt_21t, // if-lez
/*3e*/ fmt_10x, //(unused)
/*3f*/ fmt_10x, //(unused)
/*40*/ fmt_10x, //(unused)
/*41*/ fmt_10x, //(unused)
/*42*/ fmt_10x, //(unused)
/*43*/ fmt_10x, //(unused)
/*44*/ fmt_23x, // aget
/*45*/ fmt_23x, // aget-wide
/*46*/ fmt_23x, // aget-object
/*47*/ fmt_23x, // aget-boolean
/*48*/ fmt_23x, // aget-byte
/*49*/ fmt_23x, // aget-char
/*4a*/ fmt_23x, // aget-short
/*4b*/ fmt_23x, // aput
/*4c*/ fmt_23x, // aput-wide
/*4d*/ fmt_23x, // aput-object
/*4e*/ fmt_23x, // aput-boolean
/*4f*/ fmt_23x, // aput-byte
/*50*/ fmt_23x, // aput-char
/*51*/ fmt_23x, // aput-short
/*52*/ fmt_22c, // iget
/*53*/ fmt_22c, // iget-wide
/*54*/ fmt_22c, // iget-object
/*55*/ fmt_22c, // iget-boolean
/*56*/ fmt_22c, // iget-byte
/*57*/ fmt_22c, // iget-char
/*58*/ fmt_22c, // iget-short
/*59*/ fmt_22c, // iput
/*5a*/ fmt_22c, // iput-wide
/*5b*/ fmt_22c, // iput-object
/*5c*/ fmt_22c, // iput-boolean
/*5d*/ fmt_22c, // iput-byte
/*5e*/ fmt_22c, // iput-char
/*5f*/ fmt_22c, // iput-short
/*60*/ fmt_21c, // sget
/*61*/ fmt_21c, // sget-wide
/*62*/ fmt_21c, // sget-object
/*63*/ fmt_21c, // sget-boolean
/*64*/ fmt_21c, // sget-byte
/*65*/ fmt_21c, // sget-char
/*66*/ fmt_21c, // sget-short
/*67*/ fmt_21c, // sput
/*68*/ fmt_21c, // sput-wide
/*69*/ fmt_21c, // sput-object
/*6a*/ fmt_21c, // sput-boolean
/*6b*/ fmt_21c, // sput-byte
/*6c*/ fmt_21c, // sput-char
/*6d*/ fmt_21c, // sput-short
/*6e*/ fmt_35c, // invoke-virtual
/*6f*/ fmt_35c, // invoke-super
/*70*/ fmt_35c, // invoke-direct
/*71*/ fmt_35c, // invoke-static
/*72*/ fmt_35c, // invoke-interface
/*73*/ fmt_10x, //(unused)
/*74*/ fmt_3rc, // invoke-virtual/range
/*75*/ fmt_3rc, // invoke-super/range
/*76*/ fmt_3rc, // invoke-direct/range
/*77*/ fmt_3rc, // invoke-static/range
/*78*/ fmt_3rc, // invoke-interface/range
/*79*/ fmt_10x, //(unused)
/*7a*/ fmt_10x, //(unused)
/*7b*/ fmt_12x, // neg-int
/*7c*/ fmt_12x, // not-int
/*7d*/ fmt_12x, // neg-long
/*7e*/ fmt_12x, // not-long
/*7f*/ fmt_12x, // neg-float
/*80*/ fmt_12x, // neg-double
/*81*/ fmt_12x, // int-to-long
/*82*/ fmt_12x, // int-to-float
/*83*/ fmt_12x, // int-to-double
/*84*/ fmt_12x, // long-to-int
/*85*/ fmt_12x, // long-to-float
/*86*/ fmt_12x, // long-to-double
/*87*/ fmt_12x, // float-to-int
/*88*/ fmt_12x, // float-to-long
/*89*/ fmt_12x, // float-to-double
/*8a*/ fmt_12x, // double-to-int
/*8b*/ fmt_12x, // double-to-long
/*8c*/ fmt_12x, // double-to-float
/*8d*/ fmt_12x, // int-to-byte
/*8e*/ fmt_12x, // int-to-char
/*8f*/ fmt_12x, // int-to-short
/*90*/ fmt_23x, // add-int
/*91*/ fmt_23x, // sub-int
/*92*/ fmt_23x, // mul-int
/*93*/ fmt_23x, // div-int
/*94*/ fmt_23x, // rem-int
/*95*/ fmt_23x, // and-int
/*96*/ fmt_23x, // or-int
/*97*/ fmt_23x, // xor-int
/*98*/ fmt_23x, // shl-int
/*99*/ fmt_23x, // shr-int
/*9a*/ fmt_23x, // ushr-int
/*9b*/ fmt_23x, // add-long
/*9c*/ fmt_23x, // sub-long
/*9d*/ fmt_23x, // mul-long
/*9e*/ fmt_23x, // div-long
/*9f*/ fmt_23x, // rem-long
/*a0*/ fmt_23x, // and-long
/*a1*/ fmt_23x, // or-long
/*a2*/ fmt_23x, // xor-long
/*a3*/ fmt_23x, // shl-long
/*a4*/ fmt_23x, // shr-long
/*a5*/ fmt_23x, // ushr-long
/*a6*/ fmt_23x, // add-float
/*a7*/ fmt_23x, // sub-float
/*a8*/ fmt_23x, // mul-float
/*a9*/ fmt_23x, // div-float
/*aa*/ fmt_23x, // rem-float
/*ab*/ fmt_23x, // add-double
/*ac*/ fmt_23x, // sub-double
/*ad*/ fmt_23x, // mul-double
/*ae*/ fmt_23x, // div-double
/*af*/ fmt_23x, // rem-double
/*b0*/ fmt_12x, // add-int/2addr
/*b1*/ fmt_12x, // sub-int/2addr
/*b2*/ fmt_12x, // mul-int/2addr
/*b3*/ fmt_12x, // div-int/2addr
/*b4*/ fmt_12x, // rem-int/2addr
/*b5*/ fmt_12x, // and-int/2addr
/*b6*/ fmt_12x, // or-int/2addr
/*b7*/ fmt_12x, // xor-int/2addr
/*b8*/ fmt_12x, // shl-int/2addr
/*b9*/ fmt_12x, // shr-int/2addr
/*ba*/ fmt_12x, // ushr-int/2addr
/*bb*/ fmt_12x, // add-long/2addr
/*bc*/ fmt_12x, // sub-long/2addr
/*bd*/ fmt_12x, // mul-long/2addr
/*be*/ fmt_12x, // div-long/2addr
/*bf*/ fmt_12x, // rem-long/2addr
/*c0*/ fmt_12x, // and-long/2addr
/*c1*/ fmt_12x, // or-long/2addr
/*c2*/ fmt_12x, // xor-long/2addr
/*c3*/ fmt_12x, // shl-long/2addr
/*c4*/ fmt_12x, // shr-long/2addr
/*c5*/ fmt_12x, // ushr-long/2addr
/*c6*/ fmt_12x, // add-float/2addr
/*c7*/ fmt_12x, // sub-float/2addr
/*c8*/ fmt_12x, // mul-float/2addr
/*c9*/ fmt_12x, // div-float/2addr
/*ca*/ fmt_12x, // rem-float/2addr
/*cb*/ fmt_12x, // add-double/2addr
/*cc*/ fmt_12x, // sub-double/2addr
/*cd*/ fmt_12x, // mul-double/2addr
/*ce*/ fmt_12x, // div-double/2addr
/*cf*/ fmt_12x, // rem-double/2addr
/*d0*/ fmt_22s, // add-int/lit16
/*d1*/ fmt_22s, // rsub-int (reverse subtract)
/*d2*/ fmt_22s, // mul-int/lit16
/*d3*/ fmt_22s, // div-int/lit16
/*d4*/ fmt_22s, // rem-int/lit16
/*d5*/ fmt_22s, // and-int/lit16
/*d6*/ fmt_22s, // or-int/lit16
/*d7*/ fmt_22s, // xor-int/lit16
/*d8*/ fmt_22b, // add-int/lit8
/*d9*/ fmt_22b, // rsub-int/lit8
/*da*/ fmt_22b, // mul-int/lit8
/*db*/ fmt_22b, // div-int/lit8
/*dc*/ fmt_22b, // rem-int/lit8
/*dd*/ fmt_22b, // and-int/lit8
/*de*/ fmt_22b, // or-int/lit8
/*df*/ fmt_22b, // xor-int/lit8
/*e0*/ fmt_22b, // shl-int/lit8
/*e1*/ fmt_22b, // shr-int/lit8
/*e2*/ fmt_22b, // ushr-int/lit8
/*e3*/ fmt_10x, //(unused)
/*e4*/ fmt_10x, //(unused)
/*e5*/ fmt_10x, //(unused)
/*e6*/ fmt_10x, //(unused)
/*e7*/ fmt_10x, //(unused)
/*e8*/ fmt_10x, //(unused)
/*e9*/ fmt_10x, //(unused)
/*ea*/ fmt_10x, //(unused)
/*eb*/ fmt_10x, //(unused)
/*ec*/ fmt_10x, //(unused)
/*ed*/ fmt_10x, //(unused)
/*ee*/ fmt_10x, //(unused)
/*ef*/ fmt_10x, //(unused)
/*f0*/ fmt_10x, //(unused)
/*f1*/ fmt_10x, //(unused)
/*f2*/ fmt_10x, //(unused)
/*f3*/ fmt_10x, //(unused)
/*f4*/ fmt_10x, //(unused)
/*f5*/ fmt_10x, //(unused)
/*f6*/ fmt_10x, //(unused)
/*f7*/ fmt_10x, //(unused)
/*f8*/ fmt_10x, //(unused)
/*f9*/ fmt_10x, //(unused)
/*fa*/ fmt_10x, //(unused)
/*fb*/ fmt_10x, //(unused)
/*fc*/ fmt_10x, //(unused)
/*fd*/ fmt_10x, //(unused)
/*fe*/ fmt_10x, //(unused)
/*ff*/ fmt_10x //(unused)

};

static const char * insn_mnemonics[]={ 

/*0*/ "nop", //nop
/*1*/ "move", //"move vA, vB"
/*2*/ "move/from16", //"move/from16 vAA, vBBBB"
/*3*/ "move/16", //"move/16 vAAAA, vBBBB"
/*4*/ "move-wide", //"move-wide vA, vB"
/*5*/ "move-wide/from16", //"move-wide/from16 vAA, vBBBB"
/*6*/ "move-wide/16", //"move-wide/16 vAAAA, vBBBB"
/*7*/ "move-object", //"move-object vA, vB"
/*8*/ "move-object/from16", //"move-object/from16 vAA, vBBBB"
/*9*/ "move-object/16", //"move-object/16 vAAAA, vBBBB"
/*a*/ "move-result", //move-result vAA
/*b*/ "move-result-wide", //move-result-wide vAA
/*c*/ "move-result-object", //move-result-object vAA
/*d*/ "move-exception", //move-exception vAA
/*e*/ "return-void", //return-void
/*f*/ "return", //return vAA
/*10*/ "return-wide", //return-wide vAA
/*11*/ "return-object", //return-object vAA
/*12*/ "const/4", //"const/4 vA, #+B"
/*13*/ "const/16", //"const/16 vAA, #+BBBB"
/*14*/ "const", //"const vAA, #+BBBBBBBB"
/*15*/ "const/high16", //"const/high16 vAA, #+BBBB0000"
/*16*/ "const-wide/16", //"const-wide/16 vAA, #+BBBB"
/*17*/ "const-wide/32", //"const-wide/32 vAA, #+BBBBBBBB"
/*18*/ "const-wide", //"const-wide vAA, #+BBBBBBBBBBBBBBBB"
/*19*/ "const-wide/high16", //"const-wide/high16 vAA, #+BBBB000000000000"
/*1a*/ "const-string", //"const-string vAA, string@BBBB"
/*1b*/ "const-string/jumbo", //"const-string/jumbo vAA, string@BBBBBBBB"
/*1c*/ "const-class", //"const-class vAA, type@BBBB"
/*1d*/ "monitor-enter", //monitor-enter vAA
/*1e*/ "monitor-exit", //monitor-exit vAA
/*1f*/ "check-cast", //"check-cast vAA, type@BBBB"
/*20*/ "instance-of", //"instance-of vA, vB, type@CCCC"
/*21*/ "array-length", //"array-length vA, vB"
/*22*/ "new-instance", //"new-instance vAA, type@BBBB"
/*23*/ "new-array", //"new-array vA, vB, type@CCCC"
/*24*/ "filled-new-array", //"filled-new-array {vC, vD, vE, vF, vG}, type@BBBB"
/*25*/ "filled-new-array/range", //"filled-new-array/range {vCCCC .. vNNNN}, type@BBBB"
/*26*/ "fill-array-data", //"fill-array-data vAA, +BBBBBBBB (with supplemental data as specified below in ""fill-array-data-payload Format"")"
/*27*/ "throw", //throw vAA
/*28*/ "goto", //goto +AA
/*29*/ "goto/16", //goto/16 +AAAA
/*2a*/ "goto/32", //goto/32 +AAAAAAAA
/*2b*/ "packed-switch", //"packed-switch vAA, +BBBBBBBB (with supplemental data as specified below in ""packed-switch-payload Format"")"
/*2c*/ "sparse-switch", //"sparse-switch vAA, +BBBBBBBB (with supplemental data as specified below in ""sparse-switch-payload Format"")"
/*2d*/ "cmpl-float", // cmpl-float (lt bias)
/*2e*/ "cmpg-float", // cmpg-float (gt bias)
/*2f*/ "cmpl-double", // cmpl-double (lt bias)
/*30*/ "cmpg-double", // cmpg-double (gt bias)
/*31*/ "cmp-long", // cmp-long
/*32*/ "if-eq", // if-eq
/*33*/ "if-ne", // if-ne
/*34*/ "if-lt", // if-lt
/*35*/ "if-ge", // if-ge
/*36*/ "if-gt", // if-gt
/*37*/ "if-le", // if-le
/*38*/ "if-eqz", // if-eqz
/*39*/ "if-nez", // if-nez
/*3a*/ "if-ltz", // if-ltz
/*3b*/ "if-gez", // if-gez
/*3c*/ "if-gtz", // if-gtz
/*3d*/ "if-lez", // if-lez
/*3e*/ "(unused)", //(unused)
/*3f*/ "(unused)", //(unused)
/*40*/ "(unused)", //(unused)
/*41*/ "(unused)", //(unused)
/*42*/ "(unused)", //(unused)
/*43*/ "(unused)", //(unused)
/*44*/ "aget", // aget
/*45*/ "aget-wide", // aget-wide
/*46*/ "aget-object", // aget-object
/*47*/ "aget-boolean", // aget-boolean
/*48*/ "aget-byte", // aget-byte
/*49*/ "aget-char", // aget-char
/*4a*/ "aget-short", // aget-short
/*4b*/ "aput", // aput
/*4c*/ "aput-wide", // aput-wide
/*4d*/ "aput-object", // aput-object
/*4e*/ "aput-boolean", // aput-boolean
/*4f*/ "aput-byte", // aput-byte
/*50*/ "aput-char", // aput-char
/*51*/ "aput-short", // aput-short
/*52*/ "iget", // iget
/*53*/ "iget-wide", // iget-wide
/*54*/ "iget-object", // iget-object
/*55*/ "iget-boolean", // iget-boolean
/*56*/ "iget-byte", // iget-byte
/*57*/ "iget-char", // iget-char
/*58*/ "iget-short", // iget-short
/*59*/ "iput", // iput
/*5a*/ "iput-wide", // iput-wide
/*5b*/ "iput-object", // iput-object
/*5c*/ "iput-boolean", // iput-boolean
/*5d*/ "iput-byte", // iput-byte
/*5e*/ "iput-char", // iput-char
/*5f*/ "iput-short", // iput-short
/*60*/ "sget", // sget
/*61*/ "sget-wide", // sget-wide
/*62*/ "sget-object", // sget-object
/*63*/ "sget-boolean", // sget-boolean
/*64*/ "sget-byte", // sget-byte
/*65*/ "sget-char", // sget-char
/*66*/ "sget-short", // sget-short
/*67*/ "sput", // sput
/*68*/ "sput-wide", // sput-wide
/*69*/ "sput-object", // sput-object
/*6a*/ "sput-boolean", // sput-boolean
/*6b*/ "sput-byte", // sput-byte
/*6c*/ "sput-char", // sput-char
/*6d*/ "sput-short", // sput-short
/*6e*/ "invoke-virtual", // invoke-virtual
/*6f*/ "invoke-super", // invoke-super
/*70*/ "invoke-direct", // invoke-direct
/*71*/ "invoke-static", // invoke-static
/*72*/ "invoke-interface", // invoke-interface
/*73*/ "(unused)", //(unused)
/*74*/ "invoke-virtual/range", // invoke-virtual/range
/*75*/ "invoke-super/range", // invoke-super/range
/*76*/ "invoke-direct/range", // invoke-direct/range
/*77*/ "invoke-static/range", // invoke-static/range
/*78*/ "invoke-interface/range", // invoke-interface/range
/*79*/ "(unused)", //(unused)
/*7a*/ "(unused)", //(unused)
/*7b*/ "neg-int", // neg-int
/*7c*/ "not-int", // not-int
/*7d*/ "neg-long", // neg-long
/*7e*/ "not-long", // not-long
/*7f*/ "neg-float", // neg-float
/*80*/ "neg-double", // neg-double
/*81*/ "int-to-long", // int-to-long
/*82*/ "int-to-float", // int-to-float
/*83*/ "int-to-double", // int-to-double
/*84*/ "long-to-int", // long-to-int
/*85*/ "long-to-float", // long-to-float
/*86*/ "long-to-double", // long-to-double
/*87*/ "float-to-int", // float-to-int
/*88*/ "float-to-long", // float-to-long
/*89*/ "float-to-double", // float-to-double
/*8a*/ "double-to-int", // double-to-int
/*8b*/ "double-to-long", // double-to-long
/*8c*/ "double-to-float", // double-to-float
/*8d*/ "int-to-byte", // int-to-byte
/*8e*/ "int-to-char", // int-to-char
/*8f*/ "int-to-short", // int-to-short
/*90*/ "add-int", // add-int
/*91*/ "sub-int", // sub-int
/*92*/ "mul-int", // mul-int
/*93*/ "div-int", // div-int
/*94*/ "rem-int", // rem-int
/*95*/ "and-int", // and-int
/*96*/ "or-int", // or-int
/*97*/ "xor-int", // xor-int
/*98*/ "shl-int", // shl-int
/*99*/ "shr-int", // shr-int
/*9a*/ "ushr-int", // ushr-int
/*9b*/ "add-long", // add-long
/*9c*/ "sub-long", // sub-long
/*9d*/ "mul-long", // mul-long
/*9e*/ "div-long", // div-long
/*9f*/ "rem-long", // rem-long
/*a0*/ "and-long", // and-long
/*a1*/ "or-long", // or-long
/*a2*/ "xor-long", // xor-long
/*a3*/ "shl-long", // shl-long
/*a4*/ "shr-long", // shr-long
/*a5*/ "ushr-long", // ushr-long
/*a6*/ "add-float", // add-float
/*a7*/ "sub-float", // sub-float
/*a8*/ "mul-float", // mul-float
/*a9*/ "div-float", // div-float
/*aa*/ "rem-float", // rem-float
/*ab*/ "add-double", // add-double
/*ac*/ "sub-double", // sub-double
/*ad*/ "mul-double", // mul-double
/*ae*/ "div-double", // div-double
/*af*/ "rem-double", // rem-double
/*b0*/ "add-int/2addr", // add-int/2addr
/*b1*/ "sub-int/2addr", // sub-int/2addr
/*b2*/ "mul-int/2addr", // mul-int/2addr
/*b3*/ "div-int/2addr", // div-int/2addr
/*b4*/ "rem-int/2addr", // rem-int/2addr
/*b5*/ "and-int/2addr", // and-int/2addr
/*b6*/ "or-int/2addr", // or-int/2addr
/*b7*/ "xor-int/2addr", // xor-int/2addr
/*b8*/ "shl-int/2addr", // shl-int/2addr
/*b9*/ "shr-int/2addr", // shr-int/2addr
/*ba*/ "ushr-int/2addr", // ushr-int/2addr
/*bb*/ "add-long/2addr", // add-long/2addr
/*bc*/ "sub-long/2addr", // sub-long/2addr
/*bd*/ "mul-long/2addr", // mul-long/2addr
/*be*/ "div-long/2addr", // div-long/2addr
/*bf*/ "rem-long/2addr", // rem-long/2addr
/*c0*/ "and-long/2addr", // and-long/2addr
/*c1*/ "or-long/2addr", // or-long/2addr
/*c2*/ "xor-long/2addr", // xor-long/2addr
/*c3*/ "shl-long/2addr", // shl-long/2addr
/*c4*/ "shr-long/2addr", // shr-long/2addr
/*c5*/ "ushr-long/2addr", // ushr-long/2addr
/*c6*/ "add-float/2addr", // add-float/2addr
/*c7*/ "sub-float/2addr", // sub-float/2addr
/*c8*/ "mul-float/2addr", // mul-float/2addr
/*c9*/ "div-float/2addr", // div-float/2addr
/*ca*/ "rem-float/2addr", // rem-float/2addr
/*cb*/ "add-double/2addr", // add-double/2addr
/*cc*/ "sub-double/2addr", // sub-double/2addr
/*cd*/ "mul-double/2addr", // mul-double/2addr
/*ce*/ "div-double/2addr", // div-double/2addr
/*cf*/ "rem-double/2addr", // rem-double/2addr
/*d0*/ "add-int/lit16", // add-int/lit16
/*d1*/ "rsub-int", // rsub-int (reverse subtract)
/*d2*/ "mul-int/lit16", // mul-int/lit16
/*d3*/ "div-int/lit16", // div-int/lit16
/*d4*/ "rem-int/lit16", // rem-int/lit16
/*d5*/ "and-int/lit16", // and-int/lit16
/*d6*/ "or-int/lit16", // or-int/lit16
/*d7*/ "xor-int/lit16", // xor-int/lit16
/*d8*/ "add-int/lit8", // add-int/lit8
/*d9*/ "rsub-int/lit8", // rsub-int/lit8
/*da*/ "mul-int/lit8", // mul-int/lit8
/*db*/ "div-int/lit8", // div-int/lit8
/*dc*/ "rem-int/lit8", // rem-int/lit8
/*dd*/ "and-int/lit8", // and-int/lit8
/*de*/ "or-int/lit8", // or-int/lit8
/*df*/ "xor-int/lit8", // xor-int/lit8
/*e0*/ "shl-int/lit8", // shl-int/lit8
/*e1*/ "shr-int/lit8", // shr-int/lit8
/*e2*/ "ushr-int/lit8", // ushr-int/lit8
/*e3*/ "(unused)", //(unused)
/*e4*/ "(unused)", //(unused)
/*e5*/ "(unused)", //(unused)
/*e6*/ "(unused)", //(unused)
/*e7*/ "(unused)", //(unused)
/*e8*/ "(unused)", //(unused)
/*e9*/ "(unused)", //(unused)
/*ea*/ "(unused)", //(unused)
/*eb*/ "(unused)", //(unused)
/*ec*/ "(unused)", //(unused)
/*ed*/ "(unused)", //(unused)
/*ee*/ "(unused)", //(unused)
/*ef*/ "(unused)", //(unused)
/*f0*/ "(unused)", //(unused)
/*f1*/ "(unused)", //(unused)
/*f2*/ "(unused)", //(unused)
/*f3*/ "(unused)", //(unused)
/*f4*/ "(unused)", //(unused)
/*f5*/ "(unused)", //(unused)
/*f6*/ "(unused)", //(unused)
/*f7*/ "(unused)", //(unused)
/*f8*/ "(unused)", //(unused)
/*f9*/ "(unused)", //(unused)
/*fa*/ "(unused)", //(unused)
/*fb*/ "(unused)", //(unused)
/*fc*/ "(unused)", //(unused)
/*fd*/ "(unused)", //(unused)
/*fe*/ "(unused)", //(unused)
/*ff*/ "(unused)" //(unused)

};

int pre_decode(unsigned char * code,PINSN_INFO p_insn)
{

  p_insn->code=(unsigned short*)code;
  p_insn->fmt=insn_fmt[code[0]];
  p_insn->length=insn_len_by_fmt(insn_fmt[code[0]]);
	
	return p_insn->length;
}

